package com.navi.loaddata.core.oracleEntity;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;

@Entity
@Table(name = "PRODUCTSPEC", schema = "P1MESADM", catalog = "")
@IdClass(ProductspecPK.class)
public class Productspec {
    private String factoryname;
    private String productspecname;
    private String productspecversion;
    private String description;
    private String checkstate;
    private String activestate;
    private Timestamp createtime;
    private String createuser;
    private Timestamp checkouttime;
    private String checkoutuser;
    private String productiontype;
    private String producttype;
    private Long productquantity;
    private String subproducttype;
    private Long subproductunitquantity1;
    private Long subproductunitquantity2;
    private String processflowname;
    private String processflowversion;
    private Double estimatedcycletime;
    private String multiproductspectype;
    private String productspec2Name;
    private String productspec2Version;
    private String productsize;
    private Double productthickness;
    private Long productcountonxaxis;
    private Long productcountonyaxis;
    private Long productsizexaxis;
    private Long productsizeyaxis;
    private Long maxusedcount;
    private String productruntype;
    private String carriersetcode;
    private String boxsetcode;
    private String mqctype;
    private String productspecgroup;
    private String lastupdateuser;
    private Timestamp lastupdatetime;
    private String productsizetype;
    private String subfactoryname;
    private String detaildummytype;
    private String modeltype;
    private String productspectype;
    private String erpproductspecname;

    @Id
    @Column(name = "FACTORYNAME")
    public String getFactoryname() {
        return factoryname;
    }

    public void setFactoryname(String factoryname) {
        this.factoryname = factoryname;
    }

    @Id
    @Column(name = "PRODUCTSPECNAME")
    public String getProductspecname() {
        return productspecname;
    }

    public void setProductspecname(String productspecname) {
        this.productspecname = productspecname;
    }

    @Id
    @Column(name = "PRODUCTSPECVERSION")
    public String getProductspecversion() {
        return productspecversion;
    }

    public void setProductspecversion(String productspecversion) {
        this.productspecversion = productspecversion;
    }

    @Basic
    @Column(name = "DESCRIPTION")
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Basic
    @Column(name = "CHECKSTATE")
    public String getCheckstate() {
        return checkstate;
    }

    public void setCheckstate(String checkstate) {
        this.checkstate = checkstate;
    }

    @Basic
    @Column(name = "ACTIVESTATE")
    public String getActivestate() {
        return activestate;
    }

    public void setActivestate(String activestate) {
        this.activestate = activestate;
    }

    @Basic
    @Column(name = "CREATETIME")
    public Timestamp getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Timestamp createtime) {
        this.createtime = createtime;
    }

    @Basic
    @Column(name = "CREATEUSER")
    public String getCreateuser() {
        return createuser;
    }

    public void setCreateuser(String createuser) {
        this.createuser = createuser;
    }

    @Basic
    @Column(name = "CHECKOUTTIME")
    public Timestamp getCheckouttime() {
        return checkouttime;
    }

    public void setCheckouttime(Timestamp checkouttime) {
        this.checkouttime = checkouttime;
    }

    @Basic
    @Column(name = "CHECKOUTUSER")
    public String getCheckoutuser() {
        return checkoutuser;
    }

    public void setCheckoutuser(String checkoutuser) {
        this.checkoutuser = checkoutuser;
    }

    @Basic
    @Column(name = "PRODUCTIONTYPE")
    public String getProductiontype() {
        return productiontype;
    }

    public void setProductiontype(String productiontype) {
        this.productiontype = productiontype;
    }

    @Basic
    @Column(name = "PRODUCTTYPE")
    public String getProducttype() {
        return producttype;
    }

    public void setProducttype(String producttype) {
        this.producttype = producttype;
    }

    @Basic
    @Column(name = "PRODUCTQUANTITY")
    public Long getProductquantity() {
        return productquantity;
    }

    public void setProductquantity(Long productquantity) {
        this.productquantity = productquantity;
    }

    @Basic
    @Column(name = "SUBPRODUCTTYPE")
    public String getSubproducttype() {
        return subproducttype;
    }

    public void setSubproducttype(String subproducttype) {
        this.subproducttype = subproducttype;
    }

    @Basic
    @Column(name = "SUBPRODUCTUNITQUANTITY1")
    public Long getSubproductunitquantity1() {
        return subproductunitquantity1;
    }

    public void setSubproductunitquantity1(Long subproductunitquantity1) {
        this.subproductunitquantity1 = subproductunitquantity1;
    }

    @Basic
    @Column(name = "SUBPRODUCTUNITQUANTITY2")
    public Long getSubproductunitquantity2() {
        return subproductunitquantity2;
    }

    public void setSubproductunitquantity2(Long subproductunitquantity2) {
        this.subproductunitquantity2 = subproductunitquantity2;
    }

    @Basic
    @Column(name = "PROCESSFLOWNAME")
    public String getProcessflowname() {
        return processflowname;
    }

    public void setProcessflowname(String processflowname) {
        this.processflowname = processflowname;
    }

    @Basic
    @Column(name = "PROCESSFLOWVERSION")
    public String getProcessflowversion() {
        return processflowversion;
    }

    public void setProcessflowversion(String processflowversion) {
        this.processflowversion = processflowversion;
    }

    @Basic
    @Column(name = "ESTIMATEDCYCLETIME")
    public Double getEstimatedcycletime() {
        return estimatedcycletime;
    }

    public void setEstimatedcycletime(Double estimatedcycletime) {
        this.estimatedcycletime = estimatedcycletime;
    }

    @Basic
    @Column(name = "MULTIPRODUCTSPECTYPE")
    public String getMultiproductspectype() {
        return multiproductspectype;
    }

    public void setMultiproductspectype(String multiproductspectype) {
        this.multiproductspectype = multiproductspectype;
    }

    @Basic
    @Column(name = "PRODUCTSPEC2NAME")
    public String getProductspec2Name() {
        return productspec2Name;
    }

    public void setProductspec2Name(String productspec2Name) {
        this.productspec2Name = productspec2Name;
    }

    @Basic
    @Column(name = "PRODUCTSPEC2VERSION")
    public String getProductspec2Version() {
        return productspec2Version;
    }

    public void setProductspec2Version(String productspec2Version) {
        this.productspec2Version = productspec2Version;
    }

    @Basic
    @Column(name = "PRODUCTSIZE")
    public String getProductsize() {
        return productsize;
    }

    public void setProductsize(String productsize) {
        this.productsize = productsize;
    }

    @Basic
    @Column(name = "PRODUCTTHICKNESS")
    public Double getProductthickness() {
        return productthickness;
    }

    public void setProductthickness(Double productthickness) {
        this.productthickness = productthickness;
    }

    @Basic
    @Column(name = "PRODUCTCOUNTONXAXIS")
    public Long getProductcountonxaxis() {
        return productcountonxaxis;
    }

    public void setProductcountonxaxis(Long productcountonxaxis) {
        this.productcountonxaxis = productcountonxaxis;
    }

    @Basic
    @Column(name = "PRODUCTCOUNTONYAXIS")
    public Long getProductcountonyaxis() {
        return productcountonyaxis;
    }

    public void setProductcountonyaxis(Long productcountonyaxis) {
        this.productcountonyaxis = productcountonyaxis;
    }

    @Basic
    @Column(name = "PRODUCTSIZEXAXIS")
    public Long getProductsizexaxis() {
        return productsizexaxis;
    }

    public void setProductsizexaxis(Long productsizexaxis) {
        this.productsizexaxis = productsizexaxis;
    }

    @Basic
    @Column(name = "PRODUCTSIZEYAXIS")
    public Long getProductsizeyaxis() {
        return productsizeyaxis;
    }

    public void setProductsizeyaxis(Long productsizeyaxis) {
        this.productsizeyaxis = productsizeyaxis;
    }

    @Basic
    @Column(name = "MAXUSEDCOUNT")
    public Long getMaxusedcount() {
        return maxusedcount;
    }

    public void setMaxusedcount(Long maxusedcount) {
        this.maxusedcount = maxusedcount;
    }

    @Basic
    @Column(name = "PRODUCTRUNTYPE")
    public String getProductruntype() {
        return productruntype;
    }

    public void setProductruntype(String productruntype) {
        this.productruntype = productruntype;
    }

    @Basic
    @Column(name = "CARRIERSETCODE")
    public String getCarriersetcode() {
        return carriersetcode;
    }

    public void setCarriersetcode(String carriersetcode) {
        this.carriersetcode = carriersetcode;
    }

    @Basic
    @Column(name = "BOXSETCODE")
    public String getBoxsetcode() {
        return boxsetcode;
    }

    public void setBoxsetcode(String boxsetcode) {
        this.boxsetcode = boxsetcode;
    }

    @Basic
    @Column(name = "MQCTYPE")
    public String getMqctype() {
        return mqctype;
    }

    public void setMqctype(String mqctype) {
        this.mqctype = mqctype;
    }

    @Basic
    @Column(name = "PRODUCTSPECGROUP")
    public String getProductspecgroup() {
        return productspecgroup;
    }

    public void setProductspecgroup(String productspecgroup) {
        this.productspecgroup = productspecgroup;
    }

    @Basic
    @Column(name = "LASTUPDATEUSER")
    public String getLastupdateuser() {
        return lastupdateuser;
    }

    public void setLastupdateuser(String lastupdateuser) {
        this.lastupdateuser = lastupdateuser;
    }

    @Basic
    @Column(name = "LASTUPDATETIME")
    public Timestamp getLastupdatetime() {
        return lastupdatetime;
    }

    public void setLastupdatetime(Timestamp lastupdatetime) {
        this.lastupdatetime = lastupdatetime;
    }

    @Basic
    @Column(name = "PRODUCTSIZETYPE")
    public String getProductsizetype() {
        return productsizetype;
    }

    public void setProductsizetype(String productsizetype) {
        this.productsizetype = productsizetype;
    }

    @Basic
    @Column(name = "SUBFACTORYNAME")
    public String getSubfactoryname() {
        return subfactoryname;
    }

    public void setSubfactoryname(String subfactoryname) {
        this.subfactoryname = subfactoryname;
    }

    @Basic
    @Column(name = "DETAILDUMMYTYPE")
    public String getDetaildummytype() {
        return detaildummytype;
    }

    public void setDetaildummytype(String detaildummytype) {
        this.detaildummytype = detaildummytype;
    }

    @Basic
    @Column(name = "MODELTYPE")
    public String getModeltype() {
        return modeltype;
    }

    public void setModeltype(String modeltype) {
        this.modeltype = modeltype;
    }

    @Basic
    @Column(name = "PRODUCTSPECTYPE")
    public String getProductspectype() {
        return productspectype;
    }

    public void setProductspectype(String productspectype) {
        this.productspectype = productspectype;
    }

    @Basic
    @Column(name = "ERPPRODUCTSPECNAME")
    public String getErpproductspecname() {
        return erpproductspecname;
    }

    public void setErpproductspecname(String erpproductspecname) {
        this.erpproductspecname = erpproductspecname;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Productspec that = (Productspec) o;
        return Objects.equals(factoryname, that.factoryname) &&
                Objects.equals(productspecname, that.productspecname) &&
                Objects.equals(productspecversion, that.productspecversion) &&
                Objects.equals(description, that.description) &&
                Objects.equals(checkstate, that.checkstate) &&
                Objects.equals(activestate, that.activestate) &&
                Objects.equals(createtime, that.createtime) &&
                Objects.equals(createuser, that.createuser) &&
                Objects.equals(checkouttime, that.checkouttime) &&
                Objects.equals(checkoutuser, that.checkoutuser) &&
                Objects.equals(productiontype, that.productiontype) &&
                Objects.equals(producttype, that.producttype) &&
                Objects.equals(productquantity, that.productquantity) &&
                Objects.equals(subproducttype, that.subproducttype) &&
                Objects.equals(subproductunitquantity1, that.subproductunitquantity1) &&
                Objects.equals(subproductunitquantity2, that.subproductunitquantity2) &&
                Objects.equals(processflowname, that.processflowname) &&
                Objects.equals(processflowversion, that.processflowversion) &&
                Objects.equals(estimatedcycletime, that.estimatedcycletime) &&
                Objects.equals(multiproductspectype, that.multiproductspectype) &&
                Objects.equals(productspec2Name, that.productspec2Name) &&
                Objects.equals(productspec2Version, that.productspec2Version) &&
                Objects.equals(productsize, that.productsize) &&
                Objects.equals(productthickness, that.productthickness) &&
                Objects.equals(productcountonxaxis, that.productcountonxaxis) &&
                Objects.equals(productcountonyaxis, that.productcountonyaxis) &&
                Objects.equals(productsizexaxis, that.productsizexaxis) &&
                Objects.equals(productsizeyaxis, that.productsizeyaxis) &&
                Objects.equals(maxusedcount, that.maxusedcount) &&
                Objects.equals(productruntype, that.productruntype) &&
                Objects.equals(carriersetcode, that.carriersetcode) &&
                Objects.equals(boxsetcode, that.boxsetcode) &&
                Objects.equals(mqctype, that.mqctype) &&
                Objects.equals(productspecgroup, that.productspecgroup) &&
                Objects.equals(lastupdateuser, that.lastupdateuser) &&
                Objects.equals(lastupdatetime, that.lastupdatetime) &&
                Objects.equals(productsizetype, that.productsizetype) &&
                Objects.equals(subfactoryname, that.subfactoryname) &&
                Objects.equals(detaildummytype, that.detaildummytype) &&
                Objects.equals(modeltype, that.modeltype) &&
                Objects.equals(productspectype, that.productspectype) &&
                Objects.equals(erpproductspecname, that.erpproductspecname);
    }

    @Override
    public int hashCode() {

        return Objects.hash(factoryname, productspecname, productspecversion, description, checkstate, activestate, createtime, createuser, checkouttime, checkoutuser, productiontype, producttype, productquantity, subproducttype, subproductunitquantity1, subproductunitquantity2, processflowname, processflowversion, estimatedcycletime, multiproductspectype, productspec2Name, productspec2Version, productsize, productthickness, productcountonxaxis, productcountonyaxis, productsizexaxis, productsizeyaxis, maxusedcount, productruntype, carriersetcode, boxsetcode, mqctype, productspecgroup, lastupdateuser, lastupdatetime, productsizetype, subfactoryname, detaildummytype, modeltype, productspectype, erpproductspecname);
    }
}
